package com.cykj.pos.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cykj.common.core.domain.AjaxResult;
import com.cykj.pos.domain.BizMerchantEntry;
import com.cykj.pos.domain.BizPosMachineStatusRecords;
import com.cykj.pos.domain.dto.TransactionDetailsDTO;

import java.util.List;

/**
 * 终端设备状态记录Service接口
 *
 * @author weijianbo
 * @date 2021-02-02
 */
public interface IBizPosMachineStatusRecordsService extends IService<BizPosMachineStatusRecords> {

    /**
     * 查询列表
     */
    List<BizPosMachineStatusRecords> queryList(BizPosMachineStatusRecords bizPosMachineStatusRecords);

    /**
     * 根据商户编号查询设备记录信息 魏建波
     *
     * @param merchantId
     * @return
     */
    BizPosMachineStatusRecords getPosMachineStatusRecordsByMerchantId(String merchantId);

    /**
     * 根据snCode来查询设备记录信息 洛
     *
     * @param snCode
     * @return
     */
    BizPosMachineStatusRecords selectBizPosMachineStatusRecords(String snCode);

    /**
     * 更新设备信息 洛
     *
     * @param biz
     */
    void updateMachineStatusRecords(BizPosMachineStatusRecords biz);

    /**
     * 根据设备号查询绑定信息
     *
     * @param snCode
     * @return
     */
    BizPosMachineStatusRecords getPosMachineBindActionRecordsBySnCode(String snCode, String status);

    /**
     * 根据设备号查询绑定信息
     *
     * @param snCode
     * @return
     */
    BizPosMachineStatusRecords getPosMachineBindActionRecordsBySnCode(String snCode);

    /**
     * 生成pos机对应的上层伙伴列表信息 调用mysql的存储过程
     *
     * @param posCode
     * @param merchId
     * @return
     */
    void generatePosMerchantRelatedProcedure(String posCode, Long merchId);

    /**
     * 设备激活达标
     *
     * @param bizPosMachineStatusRecords
     * @return
     */
    BizPosMachineStatusRecords queryPosInfoBySncodeOrPhone(BizPosMachineStatusRecords bizPosMachineStatusRecords);

    /**
     * VUE查询激活列表已激活状态
     *
     * @param bizPosMachineStatusRecords
     * @return
     */
    List<BizPosMachineStatusRecords> queryListActiv(BizPosMachineStatusRecords bizPosMachineStatusRecords);

    /**
     * pos1.0 设备绑定
     *
     * @param bizMerchantEntry
     * @return
     */
    int snRecordsOneVersion(BizMerchantEntry bizMerchantEntry);

    /**
     * 处理设备激活
     *
     * @param snCode
     */
    int disposeOneVersionRecords(String snCode);

    /**
     * 激活pos
     *
     * @param sn
     * @return
     */
    int updateRecordsService(String sn);

    void updateRecordsStatus(String snCode);

    void updatePosRecordsStatus(String snCode);

    /**
     * 查询设备激活表
     * @param snCode
     * @return
     */
    BizPosMachineStatusRecords selectBizPosMachineStatusRecordsBysnCode(String snCode);

    /**
     * 存解绑记录
     * @param bizPosMachineStatusRecords
     */
    void insertBizPosRecordsNew(BizPosMachineStatusRecords bizPosMachineStatusRecords);

    /**
     * 删除激活表里的数据
     * @param snCode
     */
    void deleteBizPosRecordsNew(String snCode);

    void deletebizentrySn(String snCode);

    /**
     * 插入激活表数据
     * @param bizPosMachineStatusRecords1
     */
    void insertBizPosMachineStatusRecords(BizPosMachineStatusRecords bizPosMachineStatusRecords1);

    /**
     * 更新激活表
     * @param bizPosMachineStatusRecords
     */
    void updateMachineStatusRecordsByXXL(BizPosMachineStatusRecords bizPosMachineStatusRecords);

    /**
     * 查询今日激活数
     * @param detailsDTO
     * @return
     */
    int selectActiveCount(TransactionDetailsDTO detailsDTO);
}
